import UIKit

//
@available(iOS 2.0, *)
extension QKC where AA :UINavigationBar {
    open func barStyle_qk_s(_ barStyle:  UIBarStyle) -> QKC<AA,YY,ZZ, UIBarStyle>{
		return link(next: barStyle).then_QK { $0.value.barStyle = barStyle }
	}
    open func barStyle_qk_g() -> QKC<AA,YY,ZZ, UIBarStyle>{
		 self +^ self.value.barStyle
	}

     open func delegate_qk_s(_ delegate:  UINavigationBarDelegate?) -> QKC<AA,YY,ZZ, UINavigationBarDelegate?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UINavigationBarDelegate?>{
		 self +^ self.value.delegate
	}

		// Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent
    @available(iOS 3.0, *)
    open func isTranslucent_qk_s(_ isTranslucent:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isTranslucent).then_QK { $0.value.isTranslucent = isTranslucent }
	}
    @available(iOS 3.0, *)
    open func isTranslucent_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isTranslucent
	}

    open func topItem_qk_g() -> QKC<AA,YY,ZZ, UINavigationItem? >{
		 self +^ self.value.topItem
	}

    open func backItem_qk_g() -> QKC<AA,YY,ZZ, UINavigationItem? >{
		 self +^ self.value.backItem
	}

    open func items_qk_s(_ items:  [UINavigationItem]?) -> QKC<AA,YY,ZZ, [UINavigationItem]?>{
		return link(next: items).then_QK { $0.value.items = items }
	}
    open func items_qk_g() -> QKC<AA,YY,ZZ, [UINavigationItem]?>{
		 self +^ self.value.items
	}

	/// When set to YES, the navigation bar will use a larger out-of-line title view when requested by the current navigation item. To specify when the large out-of-line title view appears, see UINavigationItem.largeTitleDisplayMode. Defaults to NO.
    @available(iOS 11.0, *)
    open func prefersLargeTitles_qk_s(_ prefersLargeTitles:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: prefersLargeTitles).then_QK { $0.value.prefersLargeTitles = prefersLargeTitles }
	}
    @available(iOS 11.0, *)
    open func prefersLargeTitles_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.prefersLargeTitles
	}

    open func tintColor_qk_s(_ tintColor:  UIColor) -> QKC<AA,YY,ZZ, UIColor>{
		return link(next: tintColor).then_QK { $0.value.tintColor = tintColor }
	}
    open func tintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor>{
		 self +^ self.value.tintColor
	}

		// default is nil
    @available(iOS 7.0, *)
    open func barTintColor_qk_s(_ barTintColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: barTintColor).then_QK { $0.value.barTintColor = barTintColor }
	}
    @available(iOS 7.0, *)
    open func barTintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.barTintColor
	}

    @available(iOS 6.0, *)
    open func shadowImage_qk_s(_ shadowImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: shadowImage).then_QK { $0.value.shadowImage = shadowImage }
	}
    @available(iOS 6.0, *)
    open func shadowImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.shadowImage
	}

    @available(iOS 5.0, *)
    open func titleTextAttributes_qk_s(_ titleTextAttributes:  [NSAttributedString.Key : Any]?) -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]?>{
		return link(next: titleTextAttributes).then_QK { $0.value.titleTextAttributes = titleTextAttributes }
	}
    @available(iOS 5.0, *)
    open func titleTextAttributes_qk_g() -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]?>{
		 self +^ self.value.titleTextAttributes
	}

    @available(iOS 11.0, *)
    open func largeTitleTextAttributes_qk_s(_ largeTitleTextAttributes:  [NSAttributedString.Key : Any]?) -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]?>{
		return link(next: largeTitleTextAttributes).then_QK { $0.value.largeTitleTextAttributes = largeTitleTextAttributes }
	}
    @available(iOS 11.0, *)
    open func largeTitleTextAttributes_qk_g() -> QKC<AA,YY,ZZ, [NSAttributedString.Key : Any]?>{
		 self +^ self.value.largeTitleTextAttributes
	}

    @available(iOS 7.0, *)
    open func backIndicatorImage_qk_s(_ backIndicatorImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: backIndicatorImage).then_QK { $0.value.backIndicatorImage = backIndicatorImage }
	}
    @available(iOS 7.0, *)
    open func backIndicatorImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.backIndicatorImage
	}

    @available(iOS 7.0, *)
    open func backIndicatorTransitionMaskImage_qk_s(_ backIndicatorTransitionMaskImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: backIndicatorTransitionMaskImage).then_QK { $0.value.backIndicatorTransitionMaskImage = backIndicatorTransitionMaskImage }
	}
    @available(iOS 7.0, *)
    open func backIndicatorTransitionMaskImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.backIndicatorTransitionMaskImage
	}

	/// Describes the appearance attributes for the navigation bar to use when it is displayed with its standard height.
    @available(iOS 13.0, *)
     open func standardAppearance_qk_s(_ standardAppearance:  UINavigationBarAppearance) -> QKC<AA,YY,ZZ, UINavigationBarAppearance>{
		return link(next: standardAppearance).then_QK { $0.value.standardAppearance = standardAppearance }
	}
    @available(iOS 13.0, *)
     open func standardAppearance_qk_g() -> QKC<AA,YY,ZZ, UINavigationBarAppearance>{
		 self +^ self.value.standardAppearance
	}

	/// Describes the appearance attributes for the navigation bar to use when it is displayed with its compact height. If not set, the standardAppearance will be used instead.
    @available(iOS 13.0, *)
     open func compactAppearance_qk_s(_ compactAppearance:  UINavigationBarAppearance?) -> QKC<AA,YY,ZZ, UINavigationBarAppearance?>{
		return link(next: compactAppearance).then_QK { $0.value.compactAppearance = compactAppearance }
	}
    @available(iOS 13.0, *)
     open func compactAppearance_qk_g() -> QKC<AA,YY,ZZ, UINavigationBarAppearance?>{
		 self +^ self.value.compactAppearance
	}

	/// Describes the appearance attributes for the navigation bar to use when an associated UIScrollView has reached the edge abutting the bar (the top edge for the navigation bar). If not set, a modified standardAppearance will be used instead.
    @available(iOS 13.0, *)
     open func scrollEdgeAppearance_qk_s(_ scrollEdgeAppearance:  UINavigationBarAppearance?) -> QKC<AA,YY,ZZ, UINavigationBarAppearance?>{
		return link(next: scrollEdgeAppearance).then_QK { $0.value.scrollEdgeAppearance = scrollEdgeAppearance }
	}
    @available(iOS 13.0, *)
     open func scrollEdgeAppearance_qk_g() -> QKC<AA,YY,ZZ, UINavigationBarAppearance?>{
		 self +^ self.value.scrollEdgeAppearance
	}

	// The previous top navigation item (if it exists) is displayed as a "back" button on the left.
    open func pushItem_qk_f(_ item: UINavigationItem, animated: Bool) -> QKC<AA,YY,ZZ, UINavigationItem>{
		 self +^ self.value.pushItem(item, animated:animated) +^ item
	}

		// Returns the item that was popped.
    open func popItem_qk_f(animated: Bool) -> QKC<AA,YY,ZZ,UINavigationItem? >{
		 self +^ self.value.popItem(animated:animated)
	}

		// If animated is YES, then simulate a push or pop depending on whether the new top item was previously in the stack.
    open func setItems_qk_f(_ items: [UINavigationItem]?, animated: Bool) -> QKC<AA,YY,ZZ, [UINavigationItem]?>{
		 self +^ self.value.setItems(items, animated:animated) +^ items
	}

    @available(iOS 7.0, *)
    open func setBackgroundImage_qk_f(_ backgroundImage: UIImage?, for barPosition: UIBarPosition, barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setBackgroundImage(backgroundImage, for:barPosition, barMetrics:barMetrics) +^ backgroundImage
	}

    @available(iOS 7.0, *)
    open func backgroundImage_qk_f(for barPosition: UIBarPosition, barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.backgroundImage(for:barPosition, barMetrics:barMetrics)
	}

    @available(iOS 5.0, *)
    open func setBackgroundImage_qk_f(_ backgroundImage: UIImage?, for barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.setBackgroundImage(backgroundImage, for:barMetrics) +^ backgroundImage
	}

    @available(iOS 5.0, *)
    open func backgroundImage_qk_f(for barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ,UIImage?>{
		 self +^ self.value.backgroundImage(for:barMetrics)
	}

    @available(iOS 5.0, *)
    open func setTitleVerticalPositionAdjustment_qk_f(_ adjustment: CGFloat, for barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.setTitleVerticalPositionAdjustment(adjustment, for:barMetrics) +^ adjustment
	}

    @available(iOS 5.0, *)
    open func titleVerticalPositionAdjustment_qk_f(for barMetrics: UIBarMetrics) -> QKC<AA,YY,ZZ,CGFloat>{
		 self +^ self.value.titleVerticalPositionAdjustment(for:barMetrics)
	}

}

